package com.humingzhang.client;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * 文件SDK接口
 *
 * @author minghu.zhang
 */
public interface FileClient {

    /**
     * 文件上传
     *
     * @param path  上传文件路径
     * @param input 文件输入流
     * @return 保存后的路径（FastDfs不能指定路径）
     * @throws IOException IO异常
     */
    String upload(String path, InputStream input) throws IOException;

    /**
     * 文件下载
     *
     * @param path   下载文件路径
     * @param output 文件输出流
     * @throws IOException IO异常
     */
    void download(String path, OutputStream output) throws IOException;

    /**
     * 文件删除
     *
     * @param path 文件删除路径
     * @throws IOException IO异常
     */
    void delete(String path) throws IOException;

    /**
     * 关闭存储服务
     */
    void close();

}
